# 任务详情
# 给定一个整数数组 nums 和一个目标值 target，请你在该数组中找出“和”为目标值的两个整数，并返回他们的数组下标。

# 你可以假设每种输入只会对应一个答案，数组中元素不能重复输入。

# 请根据上面的要求，编写相应的算法，将右边的函数 twoSum() 补充完整。

# 举例

# 给定nums = [2, 7, 11, 15]，target = 9

# nums[0] + nums[1] = 2 + 7 = 9，返回[0, 1]

# 任务要求
# 1. 代码编写必须在右边指定的区域编写

# 2. 函数接收两个变量，一个是整数数组nums：list，另一个是目标值target: int

# 3. 如果存在两种或以上符合目标值target的情况，返回下标相加之和较小的数组

# 4. 函数返回的值必须为一个数组，list数据类型，元素排序为正序排序，如返回[1, 3]符合条件，[3, 1]不符合条件

# 测试用例
# 用例一

# 输入：[2，3，2，4], 7

# 输出：[1, 3]

# 用例二

# 输入：[2, 6, 7, 7], 9

# 输出：[0, 2]
# 
# # 1.运行或提交代码不需要自己编写测试用例，后台自动进行测试检查。
# 2.您编写代码的区域可以不限定在类或者函数体内，保证输入与输出符合任务要求即可。
# 3.点击“运行代码”按钮，可以查看程序设计是否正确，运行次数越多，任务得分越低。
# 4.点击“提交代码”按钮，系统将保存代码，并记录任务数据。
# 5.点击右上方“结束任务”按钮，系统将在后台计算任务得分，任务结束。
# -*- coding: utf-8 -*- 
class Solution:
    def twoSum(self, nums: list, target: int) -> list:
        dict1 = {}
        for i in range(0, len(nums)):
            num = target - nums[i]
            if num in dict1:
                return [dict1[num], i]
            else:
                dict1[nums[i]] = i


list1 = [2, 3, 2, 4]
target1 = 7
list2 = [2, 6, 7, 7]
target2 = 9
print(Solution.twoSum(Solution, list1, target1))
